UrlImage Component
URLImage is a custom Image that  executes any application its path is defined

in its ShellExecuteCmd property. If ShellExecuteCmd property remains empty

UrlImage serves as a regular Image Component.

Use UrlImage to display a graphical image on a form. Use a Picture object to specify the actual bitmap, icon, metafile, or other graphic object displayed by UrlImage.


RotateLabel Component

RotateLabel is a custom label that allows rotated text as well as many special effects with border and caption drawing styles.

The Angle and RotateCenter properties control rotation behaviour.  Angle is expressed in whole degrees, 0 to 259.  RotateCenter causes Angle changes to resize the control bounds around its center.  If RotateCenter is false, the label bound rotate around the Top,Left position.

BorderStyle is an object property of class TabcBorderStyle.  It includes the following subproperties:  Effect (none, line, lowered, raised, frame lowered, frame raised); ColorHighlight, ColorShadow and Width.  Borders can also be drawn rotated with the text.

Note: Windows limits text rotation to only TrueType fonts, so not all fonts should be used with this label.  Also take care using the ParentFont property, if the parent can have non-TrueType fonts.  The designtime property editor only shows true type fonts for selection.  If the font is set to a non-truetype font, the label draws without rotation.


StaticText Component

StaticText is a windowed control that displays text on a form. Use StaticText instead of Label when the component’s accelerator key must belong to a windowed control for example, on an ActiveX property page.


UrlLabel Component

URL label is a custom label that launches your browser at a web URL when clicked.

TIP:  If you want to make any other control link to a URL, for instance a picture, just create an invisible URLLabel and execute the label's click method when the other control is clicked.

The URL property defines which http reference to connect to.  This will be executed using your default web browser, specified in the system registry (using the shell open command linked to a .htm file type).  This does assume you have a browser installed and have not linked .htm shell open to some other application.

For the link to work, either the URL must be a local file reference, or the system must be connected to the internet.

The ShowBrowser property defines the window state to launch the browser with.

The MouseDownEffects and MouseOverEffects properties select from a set of possible effects:  underline, color change, color shadow, and sound.

The MouseDownColor and MouseOverColor are used on mousedown or mouseenter/mouseleave events in conjunction with the Effects properties.


TrialLabel Component

TrialLabel is a nonwindowed control that displays text on a form. Use TrialLabel to display information about the trial options of the program such as number of executions, expiration date etc.


ProgressBar Component

ProgressBar is a wrapper for a Windows progress bar. Use ProgressBar to add a progress bar to a form. Progress bars provide users with visual feedback about the progress of a procedure within an application. As the procedure progresses, the rectangular progress bar gradually fills from left to right with the system highlight color.


TabSheet Object

TabSheet is an individual page in a PageControl object. Use TabSheet to represent a single page in a tabbed page control. Tab sheets are typically referred to as pages. PageControl maintains an indexed array of its tab sheets in its Pages property. Users can click on a tab to activate the tab sheet.


PageControl Component

PageControl is a set of pages used to make a multiple page dialog box. Use PageControl to create a multiple page dialog or tabbed notebook. PageControl displays multiple overlapping pages that are TabSheet objects. The user selects a page by clicking the page’s tab that appears at the top of the control. To add a new page to a PageControl object at design time, right-click the PageControl object and choose New Page.


Finish Button

Appears only when Apply Protection tab is selected.

Press of this button applies protection  to executable defined by the  project currently loaded.


VPButton Component

VPButton is a push button control. Use a Button to put a standard Windows push button on a form. Button introduces several properties to control its behavior in a dialog box setting. Users choose button controls to initiate actions.

Special Properties

ButtonAction :

acTry	Executes application for on a trial basis
acQuit	Quits application trial.
acShowLicence	Displays customized licence dialog.
acShowInfo	Displays customized information dialog
acShellExecute	Executes the application its path is defined in ShellExecuteCmd property
acLicenseInstall	nstall a registered license from users directory path


Panel Component

Panel implements a generic panel control. Use Panel to put an empty panel on a form. Panels provide properties for providing a bevelled border around the control, as well as methods to help manage the placement of child controls embedded in the panel.


Back Button

You can go back to the previous tab of Visual Protect wizard by selecting the Back button.  This is useful when you want to view or change information that has been entered in previous steps.


GroupBox Component

GroupBox component represents a standard Windows group box, used to group related controls on a form. When another control component is placed within a group box, the group box becomes the parent of that component.


Next Button

You can advance to the next tab of Visual Protect wizard by selecting the Next button.


Memo Component

Memo is a wrapper for a windows multiline edit control.

Use Memo to put a standard Windows multiline edit control on your customized dialog.

Multiline edit boxes allow the user to enter more than one line of text. They are appropriate for representing lengthy information.


Regular Expressions

Syntax of Regular Expressions.

Shortest description:

A regular expression is one or more occurrences of:  One or more characters optionally

enclosed in quotes.  The following symbols are treated specially:

^	start of line

$	end of line

.	any character

\	quote next character

*	match zero or more

+	match one or more

[aeiou0-9]	match a, e, i, o, u, and 0 thru 9 ;

[^aeiou0-9]	match anything but a, e, i, o, u, and 0 thru 9

Full description:

In addition to above:

\w	matches an alphanumeric character (including "_")

\W	a nonalphanumeric

\d	matches a numeric character

\D	a non-numeric

\s	matches any space (same as [ \t\n\r\f])

\S	a non space

You may use \w, \d and \s within character classes.

Also, \n, \r, \f, \t, \a, \b and \NNN have their normal interpretations.

Alternatives may be separated by |.

The bracketing construct ( ... ) may also be used for define r.e. subexpressions

By default, the ^ character is only guaranteed to match at the beginning of the string, the $ character only at the end (or before the newline at the end) and perl does certain optimizations with the assumption that the string contains only one line.

Examples of templates:

 real number (examples '13.88e-4', '-7E2'):

([+\-]?\d+(\.\d+)?([eE][+\-]?\d+)?)

 phone number (examples '+7(812) 555-5555', '(20)555-55-55', '555-5555'):

((\+\d *)?(\(\d+\) *)?\d+(-\d*)*)

 e-mail address (examples 'anso@mail.ru', 'anso@rt.spb.ru'):

([_a-zA-Z\d\-\.]+@[_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-]+)+)

 Internet URL (examples 'http://www.rt.spb.ru', 'ftp://198.207.0.1\default.htm'):

([Ff][Tt][Pp]|[Hh][Tt][Tt][Pp])://([_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-]+))((/[ _a-zA-Z\d\-\\\.]+)+)*


VPL Files

VPL files associated with a  Visual Protect licence file . A  *.VPL file is generated by Visual Protect and is used to unlock protected with Visual Protect software it  keeps  information about the trial options of your software.


VPJ Files

VPJ files associated with a Visual Protect Project .

When you apply protection on an exectuble Visual Protect assigns a name to the VPJ file coming from its path, appending the extension .VPJ (Visual Protect Project).


What is Visual Protect

Visage Software distributes a sophisticated tool for software developers wishing to distribute their applications on a Trial version.

Visual Protect  is an effective and practical solution for the e-commerce of computer applications. It allows prospective customers to evaluate your complete product before buying, using an elegantly simple interface. Visual Protect is a powerful tool providing 64-bit, export-approved encryption for secure, worldwide sales.

Visual Protect  protects your program  according to your given options and sets it ready to be freely downloaded by your potential customers from your Web site, CD-ROM or other Media.

It does not interact with the normal functioning of your application but concentrates on maintaining a secure distribution environment. Visual Protect users completely control how their applications are made available to their end users.

Once a file or program has been protected with Visual Protect and distributed to your customers, its protection CANNOT BE REMOVED. Because of this, Visual Protect automatically creates a  backup file with the  same name as the original, except it has a .BAK extension. This is a copy of the un-protected program or file.


Encryption Key
When protecting your software with Visual Protect, one of the required settings is the Encryption Key. This is the unique key which your Visual Protect protected program  uses internally to ensure  security. It has a maximum length of 64 characters, which can include spaces.


Technical Support

For Technical support of Visual Protect you may contact Visual Protect support at vpsupport@visagesoft.com.

You may also find information of Visual Protect about bug fixes, new releases and FAQs through the WEB at http://www.visagesoft.gr/vp/vp.html

Please feel free to make any suggestion for Visual Protect improvements.


Apply Button

Applies protection  to executable defined by the  project currently loaded. This executable appears on Protection tab.


Beginning

There are two options, either starting to create a new project or to load an existing one.

If you choose to start a new project you must fill in the required fields following the Visual Protect Wizard.

if you choose to load an existing project you can either select it from the dropdown list which contains the projects stored in "Projects" folder or press the browse button  to search for it in your computer.

As long as you have loaded a project you can:

1. Run it by clicking the Apply Button..

2.  Modified by changing its options and clicking either the Apply Button in Project tab or Finish Button in Protection tab. If Generate licence only checkbox is checked then Visual Protect generates a new *.VPL file that holds the new trial options for your application.

NB. Previously protected applications cannot be protected again. Checkbox named "Generate licence only" must checked in order to modify trial options for already protected programs.


Shape Component

Shape represents a geometric shape that can be drawn on a form. Add a Shape object to a form to draw a simple geometric shape on the form. Shape introduces properties to describe the pen used to outline the shape and the brush used to fill it.


Trial Options

There are four trial options to protect your program. You should select at least one in order to apply protection otherwise Visual Protect will generate an exception asking you to select at least one option.

These options are:

Number of executions

Number of days

Total usage time (hours)

Expiration date

On the Options tab there is also a field named Encryption Key.This field is required because the user must supply his project  a key that locks it. Any character could be used in encryption key. Maximum size of this field is limited to 64 characters.

Finally, the checkbox with title "Hardware binding" when it is checked a registered license will deny a copy of the license to installed in a different PC. Please note that this is a weak copy protection, this means that VP will apply copy protection to your product only after the user has copied his registered license under VP's installation directory and after the first time the user execute his registered copy.

To get strong copy protection you should use Visual Protect Unique Serials to generate copy protected license files


TrialBar Component

TrialBar is a wrapper for a Windows progress bar. Use TrialBar to add a progress bar to a form. TrialBars provide users with visual feedback about the trial state of the application they try.


Dialog Customization

Visual Protect enables full customization of Dialogs. You may full customize Visual Protect dialogs such as main, license and  info dialogs. Visual customization uses components and  properties.

To customize a dialog you must do the following:

1.Select the dialog you want to customize from the Choose Dialog dropdown list.

2.Click Customize button

You can use the following components for dialog customization.

Generic Components

Label     Memo        GroupBox    Panel    Shape

PageControl     Progress Bar  Static text

UrlLabel RotateLabel  UrlImage

Visual Protect Components

VPButton   TrialBar  TrialLabel


Label Component

Label is a nonwindowed control that displays text on a form. This text can be used to label another control, and can set focus to that control when the user types an accelerator key.


Applying Protection

If a new Project is created then you must specify or browse for a single 32 - bit executable placing its path in the Textbox appearing on the  Protection tab of  Visual Protect Wizard. Finally press the Finish Button in order to apply protection.

Visual Protect creates, if does not exist, a sub-folder named "Projects" within the main Visual Protect directory and store a  *.VPJ  file which stands as a Visual Protect project.

If an existing Project is loaded then you can either press the Apply Button on Begin tab or press the Finish Button on Apply Protection tab to apply protection to your executable.

Note:

Previously protected applications cannot be protected again. Checkbox Generate licence only must be checked in order to generate only a license file (*.VPL) and modify trial options for already protected programs.

You can also apply protection from command line.


Generating a Registerd License

In order to generate a registered license you can start Generate License  program from Visual Protect programs folder or go to command line.

If you start Generate License program you can do the following:

1. Load a  *.VPJ project. You can either select it from the dropdown list which contains the projects stored in "Projects" folder.

2. As long as you have loaded a project you have three options:

In the dropdown box named "actions" you can select one of the following two actions:

a) Generate/Send License.

In this case Visual Protect generates a Visual Protect License file (*.vpl) and places it in the protected executable's  folder.

"Registered To" field is required and denotes the registered user of your program.

"Unique Serial" field is optional and it is used only if you want to apply strong copy protection to your application.If this field has a value then Visual Protect will create a license file which will work only for the PC from which you have fetch the unique serial.

"Expires" field is optional and it is used only when your registered license should expire after a time period.Please note that GenerateLicense will ignore an expiration date of "01/01/1999" (MM/DD/YYYY), this means that if you specify an expiration date and you change your mind you should set Expires value to "01/01/1999" you may consider this value as a NULL value for expiration date. See Time Registered License

"Additional Information" is optional and can be used to supply information such as program version number, company name etc.Information must be entered as follows:

Version=1.2

Company=Visage Software

Finally press Generate to generate the license file.

If you want to generate and send by e-mail a license file Visual Protect generates, compresses and finally sends a license file (*.VPL). Visual Protect places it in the protected executable's folder.

Procedure for this action includes whatever is stated for Generate License action except that you must check generate and send checkbox, and fill Send To box which denotes the E-Mail address of your registered user. Finally press Generate/Send button.

b) AutoGenerate Licence.

Visual Protect scans new E-Mail messages and apllies given regular expressions  to  these messages in order to detect order notifications from shareware registration services vendors (such as Visage Services) and extract required information for automatically generating and  sending License file (*.VPL) to registered users.

You must set your regular expressions in the fields:

Mail Header Rules : It is used to match information about Header of your incoming mail.

Customer E-Mail: It is used to extract customer E-Mail.

Registerd To: It is used to extract customer name.

Unique Serial: It is used to extract Unique Serial.

If regular expressions are satisfied then Visual Protect generates and sends a registered licence of your program to your customer.

For example:

Lets say that bellow is an e-mail notification text retreived from your mail server.

--ORDER INFORMATION
Order ID: Theorderid

Customer Name: Customer Nam

Company Name: Customer company

E-Mail Address: proion@si.qc.ca
Postal Code: J2S 2S3
--END ORDER INFORMATION

To extract the E-Mail address you should enter a regular expression in the form:

E-Mail Address: (.*)

Note that parenthesazing a regular expression when extracting field valus is required

NB. Settings concerning E-Mail Configuration, Mail Servers, regular expressions had to be previously set for the actions which require them.


What is licence
Licence files (.VPL)

A License comes as a  *.VPL  file that Visual Protect generates and places in the protected executable's  folder. It is used to unlock the protected software according to given trial options of your software.It must be shipped along with your product.

When someone becomes a registered user of your product then you can use Generate License Program to generate a registered license file (*.VPL) which must be shipped to your customer.

See: Generating a Registered License


VP.DLL

A DLL (Dynamic Link Library) file which manages functioning of your customized dialogs (Main, Credits, License). This file must be shipped along with the protected application.


Configuring E-Mail

In E-Mail configuration tab of Generate License program you must supply the following information:

From (Required) : Your E-Mail Address e.g. support@dev.gr

Subject (Optional) : A Subject for your mail e.g.  "License File".

Body Text (Optional): A Text for your message.

File Attachment (Optional) : Specify the full path of a file that you want to attach to your mail in addition to generated license file.

Notes:

Configuration of your E-Mail depends on the project currently loaded.

You cannot configure your E-Mail unless a Visual Protect Project is loaded.


Server Port Numbers

The port number of the remote host to connect to, or in the case of a server, the port number that the server will listen on.

By default port number for incoming mail server (POP3) is set to 110 and for outgoing mail server (SMTP) to 25.


Mail Servers

In order to be able to send by E-Mail registered license files (*.VPL) by E-Mail all fields in  Mail Server tab of Generate License program must be filled in.

Examples:

   Incoming Mail (POP3) : mail.V-Share.Com

   Outgoing Mail (SMTP) : mail.V-Share.Com

   Account Name : GeorgeK

   Password : i265o (any character)

Server Port Numbers:

   Outgoing Mail (SMTP) : 25

   Incoming Mail (POP3) :110

See also: E-Mail Configuration.

Note:

E-Mail configuration is saved in Windows Registry and is independent of a Visual Protect project.


Visual Protect Operation

Visual Protect uses a very easy and effective wizard to guide you through the steps necessary to create a Visual Protect Project (*.VPJ) for your application.

Wizard steps are:

Beggining.

Trial Options.

Dialog Customization.

Applying Protection.

Visual Protect  generates a License file (*.VPL)  that is used to unlock the protected software. It holds all license information of the trial application and must be distributed to your customer along with your protected software.

For registered users a new *.VPL file must be created and shipped to your registered users of your program. (see Generating a Registered License section).

Additionally, VP.DLL file must be distributed with the protected software.

Visual Protect  works with single  32-bit .EXE, .DLL, and .OCX, Delphi Packages (*.BPL, *.DPL, etc) files and can protect applications that run as services under Windows.


Generate
Generates a single license.


Generate and Send
Generates and sends by E-Mail a license. Optionally an additional file to license file can be attached.


AutoGenerate

Visual Protect scans new E-Mail messages and apllies given regular expressions  to  these messages in order to detect registration inquiries and extract required information for automatically generating and  sending License file (*.VPL) to registered users.

You must set your regular expressions in the fields:

Mail Header Rules : It is used to extract information about Header of your incoming mail.

Customer E-Mail: It is used to extract customer E-Mail.

Customer Name: It is used to extract customer name.

Company Name: It is used to extract custome'r company name.

if you want to scan E-Mail for the project currently loaded then press button Loaded Project.

if you want to scan E-Mail for all projects then press button All Projects.

If checkbox with title " Use Company name for registration if exists" is checked then Visual protect uses company name to register  your product even if customer name has been found in the body

of your incoming mail.

If regular expressions are satisfied then Visual Protect generates and sends a registered licence of your program to your customer.


Command Line

Visual Protect allows you to protect executables, generate, automatically generate and send by E-Mail license files from command  prompt.

Go to directory where Glcmd.exe locates type GLCMD and  specify the reguired parameters depending on your action.

Syntax

Long Method: --<Parameter>=<argument>

Short Method:  -<Parameter><argument>

Parameters

Long Method	Short Method	Arqument
action	a	"P" or "protect" "G" or "Generate" "A" or "Auto" "S" or "Send"
project	p	Project file name (extention *.vpj is not reguired)
register	r	Customer or Company name that your product is registered to
email	e	customer E-Mail
attach	t	File name of the attached file in addition to license file
info	i	File name that contains information about your product
serial	s	Unique Serial
Expires		Expiration date of registered license format should be MM/DD/YYYY
Help		Does not reguire an arqument. Displays Help information

Action parameter is required to initiate an action. No action parameter is required to display brief help in command line.

Actions	Required parameters	optional parameters
Protect	project
Generate	project, register	info
Send	project, register, email	info, attach
Auto	none (for all projects) project (for specified project)	none attach ,info
For example in order to generate a license command line must be:

Long Method:

C:\VisualProtect\Glcmd --action=generate --project=myproject --register=CustomerName

Short Method

C:\VisualProtect\Glcmd -a g -p myproject -r CustomerName

All parameters must be separated with single space.

After pressing Enter Visual Protect executes your action.

Note:

Settings concerning E-Mail Configuration, Mail Servers, Regular expressions had to be previously set for the actions which require them.


Visual Protect Tools
Visual Protect Programs

The following programs consist Visual Protect:

Visual Protect main program: It is used to protect an executable and to generate license files holding the trial options of your software. It encorporates a very effective wizard to lead you thru the steps of program protection.

These steps are:

Beggining.

Trial Options.

Dialog Customization.

Applying Protection.

Generate License program: it is used to generate license files for registerd users and to handle shippment of these files by E-Mail. (see: Generating a registered license).

GLCMD program: it is used to protect applications, generate, send manually or automatically registered license files from command line.


number_of_executions
The number of trials the user can run your application. This value must be an integer. The default number is 60 trials.


number_of_days
The number of days the user can try your application. This value must be an integer. The default number is 30 days.


usage_time
The total number of hours the user can try your application. This value must be an integer. The default number is 90 hours


expiration_date
This field holds the date to which the end user can evaluate your software. This value could be picked up from the calendar appears when you click the arrow button of the date control or be written from your keyboard


command_line_info
Passes to protected executable's command line all trial options set by Visual Protect.


Registerd license

A registered license comes as a *.VPL file and must be shipped to registered users of your program to ensure unlimited usage of your software. It must be placed in protected executable's folder, windows installation directory, or windows system directory.

See also: Generating a registerd license.


Unlock Protected Software

To unlock a protected with Visual Protect software you must ship a license file along with your software.

See also: Registered License Files.


Command Lines
When you application runs VP can pass the license information to your application thru the command line, If you application parses the command line then the last argument contains information regarding the VP license information

Protected executable's command line is:

C:\Myprogram.exe  /LICENSE:Status,

                                             InstallDate,

                                             NumberOfDays,

                                             NumberOfMinutes,

                                             NumberOfExecutions,

                                             ExpirationDate,

                                             RegisterTo

Command line fields description

Status	Valid values 0 or 1 or 2 0: specifies an unregistered copy (demo) 1: specifies a registered copy 2: specifies and expired license
InstallDate	Installtion date of your application
NumberOfDays	Number of days remaining
NumberOfMinutes	Number of usage minutes remaining
NumberOfExecutions	Number of executions remaining
ExpirationDate	Expiration date of application
RegisterTo	To whom the product is registered, A value will exists only for registered products, otherwise this parameter will have a null value


Windows API
Retrieve License Information

You may Retrieve license information thru VP windows API calls. You may retrieve a record structure (TVPLicense) with the license information. You application should first import the function VPGetLicenseInfo by name from 'VP.DLL'.

Then call the callback procedure to Retrieve the license information record.

NOTE: VPGetLicenseInfo will work with wrapped executables ONLY, if you call this function and the executable is not protected you will always result to a trial version.

For example

Delphi developers should enter the code bellow:

// Declarations

Type

  TVPLicense = packed record

     InstallDate : TDateTime;

     NumberOfDays: LongInt;

     NumberOfMinutes : LongInt;

     NumberOfExecutions : LongInt;

     ExpirationDate : TDateTime;

     RegisterTo: PChar;

     UserData: PChar;

     EncryptedData: PChar;

     Status : Byte;  // 0 Unregistered, 1 Registered, 2 Expired, 3 Registered Expired

  end;

Var

 VPLicense : TVPLicense;

  function VPGetLicenseInfo(var VPLicense : TVPLicense; size : integer): boolean; stdcall;

  external 'vp.dll';

// MAIN CODE HERE

  // VPGetLicenseInfo will return false on failure and true on success

  //  False will be returned only if the TVPLicenseInfo structure size is not equal

  // with the structure defined in VP.DLL

  VPGetLicenseInfo(VPLicense, SizeOf(VPLicense));

  // Is this a demo license ?

  // Valid status values are

  // 0: demo

  // 1: registered

  // 2: expired

  if VPLicense.Status = 0 then

       isDemo := True;

C/C++ developers should develop something like:

  typedef struct {

     double InstallDate; // Ole Date type (COleDateTime)

     int  NumberOfDays;

     int  NumberOfMinutes;

     int NumberOfExecutions ;

     double ExpirationDate  ; // Ole Date type (COleDateTime)

     char *RegisterTo;

     char *UserData;

     char *EncryptedData;

     unsigned char Status;  // 0 Unregistered, 1 Registered, 2 Expired, 3 Registered Expired

  } TVPLicense, *PVPLicense;

  TVPLicense VPLicense;

  typedef BOOL WINAPI (*pfnVPGetLicenseInfo)(PVPLicense, int);

  static pfnVPGetLicenseInfo VPGetLicenseInfo;

  VPGetLicenseInfo =(pfnVPGetLicenseInfo)GetProcAddress(LoadLibrary('vp.dll'), "VPGetLicenseInfo");

  VPGetLicenseInfo(&VPLicense, sizeof (TVPLicense));

VB Developers

VB module VPLicense.bas

Type TVPLicense

  InstallDate As Double

  NumberOfDays As Long

  NumberOfMinutes As Long

  NumberOfExecutions As Long

  ExpirationDate As Double

  RegisterTo As String

  UserData As String

  EncryptedData As String

  Status As Byte ' 0 Unregistered, 1 Registered, 2 Expired, 3 Registered Expired

End Type

Declare Function VPGetLicenseInfo Lib "vp.dll" (ByRef VPLicense As TVPLicense, ByVal Size As Long) As Long

VB Form code sample

Private Sub Form_Load()

Dim VPLicense As TVPLicense

i = VPGetLicenseInfo(VPLicense, Len(VPLicense))

' Lis1 is a listbox contol

List1.AddItem ("REGISTERTO: " + VPLicense.RegisterTo)

End Sub


Environment Variables

Visual protect to pass the security status to the host application thru environment variables.

This status will be one of the following:

TRIAL	Protection is in evaluation status (i.e. not registered)
EXPIRED	Evaluation period has expired, this can be used either to stop your software running or to limit the functionality in some way.
REGISTERED	Product is registered

This information is passed as a environment variable called VPSTATUS, and can be useful if you need to control the functionality of your software.

Additional environment variables are:

VPREGISTERTO	license  file "Register To" field, a value will exists for registered copies only
VPSERIAL	A unique serial id based on PC's hardware
VPREGISTERED_EXPIRED	TRUE or FALSE if the registered license has expired. See time registered licensing

Use code within your program to check this value.

Please NOTE that you should use Windows API GetEnvironmentVariable and this is because mostly all programming languages are parsing the environment variables at process startup.

Example Delphi code :

p: array[0..256] of char;

GetEnvironmentVariable('VPSTATUS', p, sizeof(p)-1);

Example C/C++ code :

char p[256];
GetEnvironmentVariable("VPSTATUS", p, sizeof(p));

Example VB code :

Dim Val As String
GetEnvironmentVariable("VPSTATUS", Val, sizeof(Val));

Consult your programming manuals for further assistance on this.


Unique Serials
Visual Protect generate a Unique Serial number for every PC that you application is installed. This number is based on computers's hardware/windows installation.


Copy protection

Visual protect can apply copy protection to your application by using VP's Unique Serials.

If you do want to enable strong copy protection for your product then when you are going to generate a registered license for your product you should also request the "unique serial" generated from VP from your customer. This unique serial can be found if your customer view your license file or your may implement a dialog box for displaying the serial, you may also drop a "VPSerial" label when customizing your forms which will display the unique serial number for customers PC. Unique serial can also be retreived if you evaludate the environment variable "VPSERIAL".

When you generate a registered license using vp serials your customers will not be able of copying your product to an other PC.

Using copy protection schemes may create problems for customers who work in mobile environments.  Specifically, copy protection prevents customers from moving the VP application from one machine to another without getting a new License (*.vpl) file.  This can be a problem in today’s portable world where customers may want to use a copy of the application on a laptop, on a home computer, or at a different location.  In addition, if Hardware Binding is implemented, the executable will cease working whenever users upgrade or modify their hardware.

If you choose not to use any of the above options, be aware that a registered application can be copied to another machine simply by copying the License (*.vplr) file and associated executable, DLL, and OCX files.  Moreover, a user could easily obtain a trial copy to use with the License (*.vplr) file.


On-Line order

Visual Protect has the ability to allow your customers to purchase your software over the Internet.

When customizing your order forms you may drop one of the two special buttons designed for on-line purchasing of your product. The two buttons are "VPVisageOrderButton" and "VPOrderButton" under the "Order" tab.

When VP found that one of those buttons are available in one of it's customized  forms and  the button is clicked VP will bring up Internet Explorer and will guide your customer to purchase your product.

When a purchase is posted to your registration service VP will generate a registered licenense file for your product.

The differences between those two buttons is that "VPVisageOrderButton" is a button specific for Visage Services Inc shareware registration services.

The button VPOrderButton is a button which can be fully customized for any registration service.

The order buttons publishes four properties for applying the registration.

OrderUrl	The URL (Universal Resource Locator) or web address, that you are going to use to allow E-Commerce. This is the web address of your payment screen on your e-commerce provider's server
FinishURL	This is the url which denotes the end of a succesfull purchase
OrderEndRegexpr	Regular expressions which will be used against the last purchase page, those regexpr should all be match for vp to assume a succesfull purchase. If this field is left empty then vp will check if has fetched the "FinishURL" from the server to apply a success on registration
RegisterToRegexpr	A regular expression from which VP will fetch the register to information. For example most of the whell know registration services display a page notifying the customer for the success of their order with some information such as an invoice number,customer name, etc. If this regual expression do not match the VP will not generate a registered license file.

VP will parse the HTML Body text only from the pages fetched from your e-commerce server.

Please note the "VPVisageOrderButton" has only two properties available and those are VisageUsername and VisageProduct this is the information needed from Visage Services for accepting a registration of your product.

If "Hardware bind" is checked in the "Trials Options" tab then VP will generate a copy protection license file for the PC from which the purchase took action.


Visage Services Inc.

VISAGE Services Inc. has created V-Share, a unique servicing system for the demanding shareware author. V-Share provides you with a 24 hours a day, 7 days per week customer support, increasing your free time by taking care of sales related issues. V-Share widens the base of people using your software, enhances your company's profile to look well established and professional, gives you access to names of all users who ordered your software, provides a direct link to your home page, and gives you live on-line reporting of your orders.

Visage Services Inc. registration procedures fully supports the functionality of Visual Protect.

V-Share registration procedures can generate registered license files for your visual protect wrapped product when your products is purchased from Visage Services.

Learn more about Visage Services Inc.


Code Samples
Definition

You may Retrieve license information thru VP windows API calls. You may retrieve a record structure (TVPLicense) with the license information. You application should first import the function VPGetLicenseInfo by name from 'VP.DLL'.

Then call the callback procedure to Retrieve the license information record.

NOTE: VPGetLicenseInfo will work with wrapped executables ONLY, if you call this function and the executable is not protected you will always result to a trial version.

Code samples

Delphi

C++

Visual Basic


EnableCopyprot
Enable copy protection for generated license files


nosplash
do not display the splash screen on startup. Please note that if you use this feature you are responsible on verifiying the license by accessing VP license information.You should abort your application if VP return an expired installation


Time Registered Licensing

Time Registered Licensing is a registered license file for your product which will expire on a specified date.Time registered license can be used when you would like to supply a new license file to your registered users. For example you might have a support contract with one of your customers but you will also want to ensure that if your customer do not pay for his support your product will also stop functional after his contract expiration.You may also use this license type if you would like to deploy leased software

VP will display a form to inform the user if his registered license has expired by customizing this form you may guide your user of how to renew his license